package com.alks.function.mapper.chengKong;

import com.alks.entity.data.entity.*;
import com.alks.function.data.dto.chengKong.assort.SdStyleColorDto;
import com.alks.function.data.dto.chengKong.assort.YfStyle2TypeDto;
import com.alks.function.data.dto.chengKong.assort.YfStyleSizeDto;
import com.alks.function.data.request.chengKong.StyleBasicRequest;
import com.alks.function.data.request.chengKong.StyleNumberRequest;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Mapper
public interface DevelopmentMapper {

    /**
     * 查询型体是否存在
     * @param styleNo
     * @return
     */
    String getStyleNo(String styleNo);

    /**
     * 新增型体
     * @param yfStyle
     * @return
     */
    int AddStyle(YfStyle yfStyle);

    /**
     * 修改型体
     * @param yfStyle
     * @return
     */
    int updateStyle(YfStyle yfStyle);

    /**
     * 删除型体
     * @param styleNo
     * @return
     */
    int delStyleType(String styleNo);

    /**
     * 新增型体类型
     * @param yfStyleType
     * @return
     */
    int AddStyleType(YfStyleType yfStyleType);

    /**
     * 删除型体号码
     * @param styleNo
     * @return
     */
    int delStyleSize(String styleNo);

    /**
     * 取号码插入
     * @param numberList 号码集合
     * @param companyId 公司
     * @param typeNo 制具序号
     */
    int addStyleNumber(@Param("numberList") List<StyleNumberRequest> numberList, @Param("companyId") String companyId, @Param("typeNo") BigDecimal typeNo, @Param("styleNo") String styleNo);

    /**
     * 新增型体图片
     * @param photoList
     * @return
     */
    int AddStyleColorPhoto(List<YfStyleColorDetail> photoList);

    /**
     * 根据型体删除颜色
     * @param styleNo
     * @return
     */
    int delStyleColor(String styleNo);

    /**
     * 查询型体列表
     * @param request
     * @param userName
     * @return
     */
    List<YfStyle2TypeDto> getStyleBasicList(@Param("request") StyleBasicRequest request, @Param("userName") String userName);

    /**
     * 查询制具资料
     * @param styleNo
     * @return
     */
    SdStyleType getStyleType(String styleNo);

    /**
     * 查询型体配码资料
     * @param styleNo
     * @param typeNo
     * @return
     */
    List<YfStyleSizeDto> getStyleSizeList(String styleNo, String typeNo);

    /**
     * 查询型体配色资料
     * @param styleNo
     * @return
     */
    List<SdStyleColorDto> getStylePhotoList(String styleNo);

    /**
     * 删除型体资料
     * @param styleNo
     * @return
     */
    int delStyleBasic(String styleNo);

    /**
     * 查询BOM是否存在
     * @param styleNo
     * @return
     */
    Integer getBomIsExist(String styleNo);

    /**
     * 查询是否检核
     * @param styleNo
     * @return
     */
    String getCheckUp(String styleNo);

    /**
     * 制单员变更
     * @param yfStyle
     * @return
     */
    int updateStyle2TechPerson(YfStyle yfStyle);

    /**
     * 型体检核
     * @param styleNoList
     * @param date
     * @param userName
     * @param cfmFlag
     * @return
     */
    int updateStyle2Inspect(@Param("styleNoList") List<String> styleNoList, @Param("date") Date date, @Param("userName") String userName, @Param("cfmFlag") String cfmFlag);

    /**
     * 查询型体配色
     * @param styleNo
     * @param styleColor
     * @return
     */
    YfStyleColorDetail getStyleColorDetail(@Param("styleNo") String styleNo, @Param("styleColor") String styleColor);

    /**
     * 新增型体配色
     * @param styleColorDetail
     * @return
     */
    int addYfStyleColorDetail(YfStyleColorDetail styleColorDetail);

    /**
     * 查询型体是否被bom引用
     * @param styleNo
     * @param styleColor
     * @return
     */
    YfBomHeadNew2 getKfBomHeadNew(@Param("styleNo") String styleNo, @Param("styleColor") String styleColor);
    YfBomHeadNew2 getKfBomHeadNew2(@Param("styleNo") String styleNo, @Param("styleColor") String styleColor,@Param("orderId") String orderId);

    /**
     * 删除型体配色
     * @param styleNo
     * @param styleColor
     * @return
     */
    int delKfStyleColorDetail(String styleNo, String styleColor);

    /**
     * 修改型体配色
     * @param styleColorDetail
     */
    int updateByStyleColorDetail(YfStyleColorDetail styleColorDetail);

    /**
     * 查询工艺数据
     * @param style
     * @return
     */
    KfStyleProcessData getStyleProcessData(String style);

    /**
     * 删除工艺数据
     * @param id
     * @return
     */
    int delKfStyleProcessData(String id);

    /**
     * 新增工艺数据
     * @param kfStyleProcessData
     * @return
     */
    int addKfStyleProcessData(KfStyleProcessData kfStyleProcessData);

    /**
     * 修改工艺数据
     * @param kfStyleProcessData
     * @return
     */
    int updateKfStyleProcessData(KfStyleProcessData kfStyleProcessData);

    /**
     * 查询大图
     *
     * @param style
     * @param styleColor
     * @return
     */
    List<KfStylePhoto> getStylePhoto(String style, String styleColor);

    /**
     * 新增大图
     * @param kfStylePhoto
     * @return
     */
    int getStylePhotoAdd2(KfStylePhoto kfStylePhoto);

    /**
     * 修改大图
     * @param kfStylePhoto
     * @return
     */
    int updateStylePhoto(KfStylePhoto kfStylePhoto);

    /**
     * 删除大图
     * @param id
     * @return
     */
    int delStylePhoto(String id);

    /**
     * 根据id查询图片
     * @param id
     * @return
     */
    KfStylePhoto getPhotoById(String id);
}
